package edu.server.dominio;

import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Session;

import edu.server.repositorio.ReservaProducto;
import edu.server.util.HibernateUtil;

public class D_ReservaProducto {

	public D_ReservaProducto(){}

	@SuppressWarnings("unchecked")
	public List<ReservaProducto> buscarPorOrdenFabricacion(int nroOrdenFabricacion)
	{
		List<ReservaProducto> reservas;
		
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		
		String hql = "SELECT rm.reservaProductos " +
				     "FROM RequerimientoMateriales rm " +
					 "WHERE rm.ordenFabricacionGeneral.nroOrden = " + nroOrdenFabricacion;
		
		reservas = session.createQuery(hql).list();
		
		session.close();
		
		return reservas;
	}
	
	public void eliminarReservas(List<ReservaProducto> reservas)
	{
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		
		try{
			session.beginTransaction();
			
			for(int i=0; i<reservas.size(); i++)
				session.delete(reservas.get(i));
			
			session.getTransaction().commit();
		}
		
		catch(HibernateException he){
			session.getTransaction().rollback();
			throw he;
		}
	}
}
